空间关系 Sample详情
最后更新时间:2019年7月5日
空间关系是对空间要素的拓扑关系的判断,包括相邻、相交、相离等基本的拓扑关系。空间关系是GIS空间查询、分析等应用的基础。
1
在进行空间关系运算之前,首先需要准备进行计算的空间几何对象MGSGeometry,获取方法可参考缓冲分析。然后调用对应的接口即可实现。
2
空间关系计算相关接口是由空间关系类MGSSpaRelation提供的。
MGSSpaRelation *spaRelation=[[MGSSpaRelation alloc] init];
3
调用对应接口实现各种空间关系判别,以区和区之间的关系判断为例。
BOOL result = [spaRelation isGeom:geoPolygon1 containsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 crossesGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 disjoint:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 equalsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 overlapsGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 touchesGeom:geoPolygon2];
BOOL result = [spaRelation isGeom:geoPolygon1 withinGeom:geoPolygon2];
其他空间关系运算接口如下表所示,可根据实际需求选择接口实现。
接口 | 说明 |
---|---|
isDot:inLin: | 判断点是否在折线内 |
isDot:inRect: | 判断点是否在矩形内 |
isDot:inReg:flg:esp: | 判断点是否在区内 |
isLin:inReg:esp: | 判断线是否在区内 |
isLin:interReg: | 判断线是否和区相交 |
isRect:inReg:esp: | 判断矩形是否在区内 |
isRect:interLin: | 判断矩形是否和线相交 |
isReg:inReg:esp: | 判断区1是否在区2内 |
isReg:interReg: | 判断区是否和区相交 |
示例效果如下所示: